package com.wang.auth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wang.common.result.Result;
import com.wang.model.process.Process;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wang.model.process.dto.ProcessDto;
import com.wang.model.process.vo.ApprovalVo;
import com.wang.model.process.vo.ProcessFormVo;
import com.wang.model.process.vo.ProcessQueryVo;

import java.util.Map;

/**
 * <p>
 * 审批类型 服务类
 * </p>
 *
 * @author wang
 * @since 2023-04-17
 */
public interface ProcessService extends IService<Process> {

    Page<ProcessDto> selectPage(Page<Process> page, ProcessQueryVo processQueryVo);

    //部署流程定义
    void deployByZip(String deployPath);

    Result startUp(ProcessFormVo processFormVo);

    Page<ProcessDto> findPending(Page<Process> pageProcess);

    Map<String, Object> show(Long id);

    void approve(ApprovalVo approvalVo);

    IPage<ProcessDto> findProcessed(Page<Process> processDtoPage);

    IPage<ProcessDto> findStarted(Page<Process> processPage);
}
